package org.jetlinks.pro.assets;

import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import javax.annotation.Nonnull;
import java.util.Collection;

/**
 * 资产管理器,用于获取资产信息
 *
 * @author zhouhao
 * @since 1.11
 */
public interface AssetManager {

    /**
     * 获取单个资产
     *
     * @param assetType 资产类型
     * @param assetId   资产ID
     * @return 资产
     */
    Mono<Asset> getAsset(@Nonnull AssetType assetType,
                         @Nonnull String assetId);

    /**
     * 获取资产
     *
     * @param assetType 资产类型
     * @param assetId   资产ID
     * @return 资产集合
     */
    Flux<Asset> getAssets(@Nonnull AssetType assetType,
                          @Nonnull Collection<?> assetId);


}
